/*
 * Copyright 2025 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.mx.ymate.security.base.model;

import net.ymate.platform.core.beans.annotation.PropertyState;
import net.ymate.platform.core.persistence.IShardingable;
import net.ymate.platform.core.persistence.annotation.*;
import net.ymate.platform.persistence.jdbc.IDatabase;
import net.ymate.platform.persistence.jdbc.IDatabaseConnectionHolder;
import net.ymate.platform.persistence.jdbc.query.AbstractFieldConditionBuilder;
import net.ymate.platform.persistence.jdbc.query.FieldCondition;
import net.ymate.platform.persistence.jdbc.query.Query;
import net.ymate.platform.persistence.jdbc.support.BaseEntity;

/**
 * SecurityUser generated By EntityMojo on 2025/12/01 10:02:01
 *
 * @author YMP (https://www.ymate.net/)
 */
@Entity(SecurityUser.TABLE_NAME)
@Comment("管理员表")
public class SecurityUser extends BaseEntity<SecurityUser, String> {

    private static final long serialVersionUID = 1L;

    @Id
    @Property(name = FIELDS.ID, nullable = false, length = 32)
    @Comment("id")
    @PropertyState(propertyName = FIELDS.ID)
    private String id;

    
    @Property(name = FIELDS.RESOURCE_ID, nullable = false, length = 32)
    @Comment("资源id 默认和客户端一致")
    @PropertyState(propertyName = FIELDS.RESOURCE_ID)
    private String resourceId;

    
    @Property(name = FIELDS.CLIENT, nullable = false, length = 100)
    @Comment("客户端")
    @PropertyState(propertyName = FIELDS.CLIENT)
    private String client;

    
    @Property(name = FIELDS.USER_NAME, nullable = false, length = 32)
    @Comment("用户名")
    @PropertyState(propertyName = FIELDS.USER_NAME)
    private String userName;

    
    @Property(name = FIELDS.REAL_NAME, length = 32)
    @Comment("真实姓名")
    @PropertyState(propertyName = FIELDS.REAL_NAME)
    private String realName;

    
    @Property(name = FIELDS.PHOTO_URI, length = 16383)
    @Comment("头像")
    @PropertyState(propertyName = FIELDS.PHOTO_URI)
    private String photoUri;

    
    @Property(name = FIELDS.PASSWORD, nullable = false, length = 32)
    @Comment("密码")
    @PropertyState(propertyName = FIELDS.PASSWORD)
    private String password;

    
    @Property(name = FIELDS.MOBILE, length = 32)
    @Comment("手机号")
    @PropertyState(propertyName = FIELDS.MOBILE)
    private String mobile;

    
    @Property(name = FIELDS.GENDER, length = 5)
    @Default("0")
    @Comment("性别")
    @PropertyState(propertyName = FIELDS.GENDER)
    private Integer gender;

    
    @Property(name = FIELDS.CREATE_USER, nullable = false, length = 32)
    @Comment("创建人")
    @PropertyState(propertyName = FIELDS.CREATE_USER)
    private String createUser;

    
    @Property(name = FIELDS.CREATE_TIME, nullable = false, length = 19)
    @Default("0")
    @Comment("创建时间")
    @PropertyState(propertyName = FIELDS.CREATE_TIME)
    private Long createTime;

    
    @Property(name = FIELDS.LAST_MODIFY_TIME, nullable = false, length = 19)
    @Default("0")
    @Comment("最后修改时间")
    @PropertyState(propertyName = FIELDS.LAST_MODIFY_TIME)
    private Long lastModifyTime;

    
    @Property(name = FIELDS.LAST_MODIFY_USER, nullable = false, length = 32)
    @Comment("最后修改人")
    @PropertyState(propertyName = FIELDS.LAST_MODIFY_USER)
    private String lastModifyUser;

    
    @Property(name = FIELDS.SALT, nullable = false, length = 32)
    @Comment("密码加密字符串")
    @PropertyState(propertyName = FIELDS.SALT)
    private String salt;

    
    @Property(name = FIELDS.DISABLE_STATUS, nullable = false, length = 5)
    @Default("0")
    @Comment("禁用状态")
    @PropertyState(propertyName = FIELDS.DISABLE_STATUS)
    private Integer disableStatus;

    
    @Property(name = FIELDS.FOUNDER, nullable = false, length = 5)
    @Default("0")
    @Comment("是否是总管理员")
    @PropertyState(propertyName = FIELDS.FOUNDER)
    private Integer founder;

    
    @Property(name = FIELDS.LOGIN_ERROR_COUNT, length = 10)
    @Default("0")
    @Comment("登录错误次数")
    @PropertyState(propertyName = FIELDS.LOGIN_ERROR_COUNT)
    private Integer loginErrorCount;

    
    @Property(name = FIELDS.LOGIN_LOCK_STATUS, length = 5)
    @Default("0")
    @Comment("锁定状态")
    @PropertyState(propertyName = FIELDS.LOGIN_LOCK_STATUS)
    private Integer loginLockStatus;

    
    @Property(name = FIELDS.LOGIN_LOCK_START_TIME, length = 19)
    @Default("0")
    @Comment("锁定开始时间")
    @PropertyState(propertyName = FIELDS.LOGIN_LOCK_START_TIME)
    private Long loginLockStartTime;

    
    @Property(name = FIELDS.LOGIN_LOCK_END_TIME, length = 19)
    @Default("0")
    @Comment("锁定结束时间")
    @PropertyState(propertyName = FIELDS.LOGIN_LOCK_END_TIME)
    private Long loginLockEndTime;

    
    @Property(name = FIELDS.LOGIN_TIME, length = 19)
    @Comment("登录时间")
    @PropertyState(propertyName = FIELDS.LOGIN_TIME)
    private Long loginTime;

    
    @Property(name = FIELDS.LOGIN_IP, length = 255)
    @Comment("登录ip")
    @PropertyState(propertyName = FIELDS.LOGIN_IP)
    private String loginIp;

    
    @Property(name = FIELDS.DEFAULT_PASSWORD_STATUS, nullable = false, length = 5)
    @Default("0")
    @Comment("默认密码修改状态 0未修改 1已修改")
    @PropertyState(propertyName = FIELDS.DEFAULT_PASSWORD_STATUS)
    private Integer defaultPasswordStatus;


    public SecurityUser() {
    }

    public SecurityUser(IDatabase dbOwner) {
        super(dbOwner);
    }

    public SecurityUser(String id, String resourceId, String client, String userName, String password, String createUser, Long createTime, Long lastModifyTime, String lastModifyUser, String salt, Integer disableStatus, Integer founder, Integer defaultPasswordStatus) {
        this.id = id;
        this.resourceId = resourceId;
        this.client = client;
        this.userName = userName;
        this.password = password;
        this.createUser = createUser;
        this.createTime = createTime;
        this.lastModifyTime = lastModifyTime;
        this.lastModifyUser = lastModifyUser;
        this.salt = salt;
        this.disableStatus = disableStatus;
        this.founder = founder;
        this.defaultPasswordStatus = defaultPasswordStatus;
    }

        public SecurityUser(IDatabase dbOwner, String id, String resourceId, String client, String userName, String password, String createUser, Long createTime, Long lastModifyTime, String lastModifyUser, String salt, Integer disableStatus, Integer founder, Integer defaultPasswordStatus) {
            super(dbOwner);
            this.id = id;
            this.resourceId = resourceId;
            this.client = client;
            this.userName = userName;
            this.password = password;
            this.createUser = createUser;
            this.createTime = createTime;
            this.lastModifyTime = lastModifyTime;
            this.lastModifyUser = lastModifyUser;
            this.salt = salt;
            this.disableStatus = disableStatus;
            this.founder = founder;
            this.defaultPasswordStatus = defaultPasswordStatus;
        }

    public SecurityUser(String id, String resourceId, String client, String userName, String realName, String photoUri, String password, String mobile, Integer gender, String createUser, Long createTime, Long lastModifyTime, String lastModifyUser, String salt, Integer disableStatus, Integer founder, Integer loginErrorCount, Integer loginLockStatus, Long loginLockStartTime, Long loginLockEndTime, Long loginTime, String loginIp, Integer defaultPasswordStatus) {
        this.id = id;
        this.resourceId = resourceId;
        this.client = client;
        this.userName = userName;
        this.realName = realName;
        this.photoUri = photoUri;
        this.password = password;
        this.mobile = mobile;
        this.gender = gender;
        this.createUser = createUser;
        this.createTime = createTime;
        this.lastModifyTime = lastModifyTime;
        this.lastModifyUser = lastModifyUser;
        this.salt = salt;
        this.disableStatus = disableStatus;
        this.founder = founder;
        this.loginErrorCount = loginErrorCount;
        this.loginLockStatus = loginLockStatus;
        this.loginLockStartTime = loginLockStartTime;
        this.loginLockEndTime = loginLockEndTime;
        this.loginTime = loginTime;
        this.loginIp = loginIp;
        this.defaultPasswordStatus = defaultPasswordStatus;
    }

    public SecurityUser(IDatabase dbOwner, String id, String resourceId, String client, String userName, String realName, String photoUri, String password, String mobile, Integer gender, String createUser, Long createTime, Long lastModifyTime, String lastModifyUser, String salt, Integer disableStatus, Integer founder, Integer loginErrorCount, Integer loginLockStatus, Long loginLockStartTime, Long loginLockEndTime, Long loginTime, String loginIp, Integer defaultPasswordStatus) {
        super(dbOwner);
        this.id = id;
        this.resourceId = resourceId;
        this.client = client;
        this.userName = userName;
        this.realName = realName;
        this.photoUri = photoUri;
        this.password = password;
        this.mobile = mobile;
        this.gender = gender;
        this.createUser = createUser;
        this.createTime = createTime;
        this.lastModifyTime = lastModifyTime;
        this.lastModifyUser = lastModifyUser;
        this.salt = salt;
        this.disableStatus = disableStatus;
        this.founder = founder;
        this.loginErrorCount = loginErrorCount;
        this.loginLockStatus = loginLockStatus;
        this.loginLockStartTime = loginLockStartTime;
        this.loginLockEndTime = loginLockEndTime;
        this.loginTime = loginTime;
        this.loginIp = loginIp;
        this.defaultPasswordStatus = defaultPasswordStatus;
    }

    @Override
    public String getId() {
        return id;
    }

    @Override
    public void setId(String id) {
        this.id = id;
    }

    public String getResourceId() {
        return resourceId;
    }

    public void setResourceId(String resourceId) {
        this.resourceId = resourceId;
    }

    public String getClient() {
        return client;
    }

    public void setClient(String client) {
        this.client = client;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getRealName() {
        return realName;
    }

    public void setRealName(String realName) {
        this.realName = realName;
    }

    public String getPhotoUri() {
        return photoUri;
    }

    public void setPhotoUri(String photoUri) {
        this.photoUri = photoUri;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public Integer getGender() {
        return gender;
    }

    public void setGender(Integer gender) {
        this.gender = gender;
    }

    public String getCreateUser() {
        return createUser;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    public Long getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Long createTime) {
        this.createTime = createTime;
    }

    public Long getLastModifyTime() {
        return lastModifyTime;
    }

    public void setLastModifyTime(Long lastModifyTime) {
        this.lastModifyTime = lastModifyTime;
    }

    public String getLastModifyUser() {
        return lastModifyUser;
    }

    public void setLastModifyUser(String lastModifyUser) {
        this.lastModifyUser = lastModifyUser;
    }

    public String getSalt() {
        return salt;
    }

    public void setSalt(String salt) {
        this.salt = salt;
    }

    public Integer getDisableStatus() {
        return disableStatus;
    }

    public void setDisableStatus(Integer disableStatus) {
        this.disableStatus = disableStatus;
    }

    public Integer getFounder() {
        return founder;
    }

    public void setFounder(Integer founder) {
        this.founder = founder;
    }

    public Integer getLoginErrorCount() {
        return loginErrorCount;
    }

    public void setLoginErrorCount(Integer loginErrorCount) {
        this.loginErrorCount = loginErrorCount;
    }

    public Integer getLoginLockStatus() {
        return loginLockStatus;
    }

    public void setLoginLockStatus(Integer loginLockStatus) {
        this.loginLockStatus = loginLockStatus;
    }

    public Long getLoginLockStartTime() {
        return loginLockStartTime;
    }

    public void setLoginLockStartTime(Long loginLockStartTime) {
        this.loginLockStartTime = loginLockStartTime;
    }

    public Long getLoginLockEndTime() {
        return loginLockEndTime;
    }

    public void setLoginLockEndTime(Long loginLockEndTime) {
        this.loginLockEndTime = loginLockEndTime;
    }

    public Long getLoginTime() {
        return loginTime;
    }

    public void setLoginTime(Long loginTime) {
        this.loginTime = loginTime;
    }

    public String getLoginIp() {
        return loginIp;
    }

    public void setLoginIp(String loginIp) {
        this.loginIp = loginIp;
    }

    public Integer getDefaultPasswordStatus() {
        return defaultPasswordStatus;
    }

    public void setDefaultPasswordStatus(Integer defaultPasswordStatus) {
        this.defaultPasswordStatus = defaultPasswordStatus;
    }


    public Builder bind() {
        return new Builder(this);
    }

    public static Builder builder() {
        return new Builder();
    }

        public static Builder builder(IDatabase dbOwner) {
            return new Builder(dbOwner);
        }

    public static class Builder {

        private final SecurityUser targetEntity;

        public Builder() {
            targetEntity = new SecurityUser();
        }

        public Builder(IDatabase dbOwner) {
            targetEntity = new SecurityUser(dbOwner);
        }

        public Builder(SecurityUser targetEntity) {
            this.targetEntity = targetEntity;
        }

        public SecurityUser build() {
            return targetEntity;
        }

        public IDatabaseConnectionHolder connectionHolder() {
            return targetEntity.getConnectionHolder();
        }

        public Builder connectionHolder(IDatabaseConnectionHolder connectionHolder) {
            targetEntity.setConnectionHolder(connectionHolder);
            return this;
        }

        public IDatabase dbOwner() {
            return targetEntity.getDbOwner();
        }

        public Builder dbOwner(IDatabase dbOwner) {
            targetEntity.setDbOwner(dbOwner);
            return this;
        }

        public String dataSourceName() {
            return targetEntity.getDataSourceName();
        }

        public Builder dataSourceName(String dataSourceName) {
            targetEntity.setDataSourceName(dataSourceName);
            return this;
        }

        public IShardingable shardingable() {
            return targetEntity.getShardingable();
        }

        public Builder shardingable(IShardingable shardingable) {
            targetEntity.setShardingable(shardingable);
            return this;
        }


        public String id() {
            return targetEntity.getId();
        }

        public Builder id(String id) {
            targetEntity.setId(id);
            return this;
        }

        public String resourceId() {
            return targetEntity.getResourceId();
        }

        public Builder resourceId(String resourceId) {
            targetEntity.setResourceId(resourceId);
            return this;
        }

        public String client() {
            return targetEntity.getClient();
        }

        public Builder client(String client) {
            targetEntity.setClient(client);
            return this;
        }

        public String userName() {
            return targetEntity.getUserName();
        }

        public Builder userName(String userName) {
            targetEntity.setUserName(userName);
            return this;
        }

        public String realName() {
            return targetEntity.getRealName();
        }

        public Builder realName(String realName) {
            targetEntity.setRealName(realName);
            return this;
        }

        public String photoUri() {
            return targetEntity.getPhotoUri();
        }

        public Builder photoUri(String photoUri) {
            targetEntity.setPhotoUri(photoUri);
            return this;
        }

        public String password() {
            return targetEntity.getPassword();
        }

        public Builder password(String password) {
            targetEntity.setPassword(password);
            return this;
        }

        public String mobile() {
            return targetEntity.getMobile();
        }

        public Builder mobile(String mobile) {
            targetEntity.setMobile(mobile);
            return this;
        }

        public Integer gender() {
            return targetEntity.getGender();
        }

        public Builder gender(Integer gender) {
            targetEntity.setGender(gender);
            return this;
        }

        public String createUser() {
            return targetEntity.getCreateUser();
        }

        public Builder createUser(String createUser) {
            targetEntity.setCreateUser(createUser);
            return this;
        }

        public Long createTime() {
            return targetEntity.getCreateTime();
        }

        public Builder createTime(Long createTime) {
            targetEntity.setCreateTime(createTime);
            return this;
        }

        public Long lastModifyTime() {
            return targetEntity.getLastModifyTime();
        }

        public Builder lastModifyTime(Long lastModifyTime) {
            targetEntity.setLastModifyTime(lastModifyTime);
            return this;
        }

        public String lastModifyUser() {
            return targetEntity.getLastModifyUser();
        }

        public Builder lastModifyUser(String lastModifyUser) {
            targetEntity.setLastModifyUser(lastModifyUser);
            return this;
        }

        public String salt() {
            return targetEntity.getSalt();
        }

        public Builder salt(String salt) {
            targetEntity.setSalt(salt);
            return this;
        }

        public Integer disableStatus() {
            return targetEntity.getDisableStatus();
        }

        public Builder disableStatus(Integer disableStatus) {
            targetEntity.setDisableStatus(disableStatus);
            return this;
        }

        public Integer founder() {
            return targetEntity.getFounder();
        }

        public Builder founder(Integer founder) {
            targetEntity.setFounder(founder);
            return this;
        }

        public Integer loginErrorCount() {
            return targetEntity.getLoginErrorCount();
        }

        public Builder loginErrorCount(Integer loginErrorCount) {
            targetEntity.setLoginErrorCount(loginErrorCount);
            return this;
        }

        public Integer loginLockStatus() {
            return targetEntity.getLoginLockStatus();
        }

        public Builder loginLockStatus(Integer loginLockStatus) {
            targetEntity.setLoginLockStatus(loginLockStatus);
            return this;
        }

        public Long loginLockStartTime() {
            return targetEntity.getLoginLockStartTime();
        }

        public Builder loginLockStartTime(Long loginLockStartTime) {
            targetEntity.setLoginLockStartTime(loginLockStartTime);
            return this;
        }

        public Long loginLockEndTime() {
            return targetEntity.getLoginLockEndTime();
        }

        public Builder loginLockEndTime(Long loginLockEndTime) {
            targetEntity.setLoginLockEndTime(loginLockEndTime);
            return this;
        }

        public Long loginTime() {
            return targetEntity.getLoginTime();
        }

        public Builder loginTime(Long loginTime) {
            targetEntity.setLoginTime(loginTime);
            return this;
        }

        public String loginIp() {
            return targetEntity.getLoginIp();
        }

        public Builder loginIp(String loginIp) {
            targetEntity.setLoginIp(loginIp);
            return this;
        }

        public Integer defaultPasswordStatus() {
            return targetEntity.getDefaultPasswordStatus();
        }

        public Builder defaultPasswordStatus(Integer defaultPasswordStatus) {
            targetEntity.setDefaultPasswordStatus(defaultPasswordStatus);
            return this;
        }
    }

    public interface FIELDS {
        String ID = "id";
        String RESOURCE_ID = "resource_id";
        String CLIENT = "client";
        String USER_NAME = "user_name";
        String REAL_NAME = "real_name";
        String PHOTO_URI = "photo_uri";
        String PASSWORD = "password";
        String MOBILE = "mobile";
        String GENDER = "gender";
        String CREATE_USER = "create_user";
        String CREATE_TIME = "create_time";
        String LAST_MODIFY_TIME = "last_modify_time";
        String LAST_MODIFY_USER = "last_modify_user";
        String SALT = "salt";
        String DISABLE_STATUS = "disable_status";
        String FOUNDER = "founder";
        String LOGIN_ERROR_COUNT = "login_error_count";
        String LOGIN_LOCK_STATUS = "login_lock_status";
        String LOGIN_LOCK_START_TIME = "login_lock_start_time";
        String LOGIN_LOCK_END_TIME = "login_lock_end_time";
        String LOGIN_TIME = "login_time";
        String LOGIN_IP = "login_ip";
        String DEFAULT_PASSWORD_STATUS = "default_password_status";
    }

    public static final String TABLE_NAME = "security_user";

    public static FieldConditionBuilder conditionBuilder() {
        return new FieldConditionBuilder();
    }

    public static FieldConditionBuilder conditionBuilder(String prefix) {
        return new FieldConditionBuilder(prefix);
    }

    public static FieldConditionBuilder conditionBuilder(Query<?> query) {
        return conditionBuilder(query, null);
    }

    public static FieldConditionBuilder conditionBuilder(Query<?> query, String prefix) {
        return new FieldConditionBuilder(query.owner(), query.dataSourceName(), prefix);
    }

    public static FieldConditionBuilder conditionBuilder(SecurityUser entity) {
        return conditionBuilder(entity, null);
    }

    public static FieldConditionBuilder conditionBuilder(SecurityUser entity, String prefix) {
        return new FieldConditionBuilder(entity.doGetSafeOwner(), entity.getDataSourceName(), prefix);
    }

    public static FieldConditionBuilder conditionBuilder(IDatabase owner, String prefix) {
        return new FieldConditionBuilder(owner, prefix);
    }

    public static FieldConditionBuilder conditionBuilder(IDatabase owner, String dataSourceName, String prefix) {
        return new FieldConditionBuilder(owner, dataSourceName, prefix);
    }

    public static class FieldConditionBuilder extends AbstractFieldConditionBuilder {

        public FieldConditionBuilder() {
            super(null, null, null);
        }

        public FieldConditionBuilder(String prefix) {
            super(null, null, prefix);
        }

        public FieldConditionBuilder(Query<?> query) {
            super(query.owner(), null, null);
        }

        public FieldConditionBuilder(Query<?> query, String prefix) {
            super(query.owner(), query.dataSourceName(), prefix);
        }

        public FieldConditionBuilder(IDatabase owner) {
            super(owner, null, null);
        }

        public FieldConditionBuilder(IDatabase owner, String prefix) {
            super(owner, null, prefix);
        }

        public FieldConditionBuilder(IDatabase owner, String dataSourceName, String prefix) {
            super(owner, dataSourceName, prefix);
        }

        public FieldCondition id() {
            return createFieldCondition(FIELDS.ID);
        }

        public FieldCondition resourceId() {
            return createFieldCondition(FIELDS.RESOURCE_ID);
        }

        public FieldCondition client() {
            return createFieldCondition(FIELDS.CLIENT);
        }

        public FieldCondition userName() {
            return createFieldCondition(FIELDS.USER_NAME);
        }

        public FieldCondition realName() {
            return createFieldCondition(FIELDS.REAL_NAME);
        }

        public FieldCondition photoUri() {
            return createFieldCondition(FIELDS.PHOTO_URI);
        }

        public FieldCondition password() {
            return createFieldCondition(FIELDS.PASSWORD);
        }

        public FieldCondition mobile() {
            return createFieldCondition(FIELDS.MOBILE);
        }

        public FieldCondition gender() {
            return createFieldCondition(FIELDS.GENDER);
        }

        public FieldCondition createUser() {
            return createFieldCondition(FIELDS.CREATE_USER);
        }

        public FieldCondition createTime() {
            return createFieldCondition(FIELDS.CREATE_TIME);
        }

        public FieldCondition lastModifyTime() {
            return createFieldCondition(FIELDS.LAST_MODIFY_TIME);
        }

        public FieldCondition lastModifyUser() {
            return createFieldCondition(FIELDS.LAST_MODIFY_USER);
        }

        public FieldCondition salt() {
            return createFieldCondition(FIELDS.SALT);
        }

        public FieldCondition disableStatus() {
            return createFieldCondition(FIELDS.DISABLE_STATUS);
        }

        public FieldCondition founder() {
            return createFieldCondition(FIELDS.FOUNDER);
        }

        public FieldCondition loginErrorCount() {
            return createFieldCondition(FIELDS.LOGIN_ERROR_COUNT);
        }

        public FieldCondition loginLockStatus() {
            return createFieldCondition(FIELDS.LOGIN_LOCK_STATUS);
        }

        public FieldCondition loginLockStartTime() {
            return createFieldCondition(FIELDS.LOGIN_LOCK_START_TIME);
        }

        public FieldCondition loginLockEndTime() {
            return createFieldCondition(FIELDS.LOGIN_LOCK_END_TIME);
        }

        public FieldCondition loginTime() {
            return createFieldCondition(FIELDS.LOGIN_TIME);
        }

        public FieldCondition loginIp() {
            return createFieldCondition(FIELDS.LOGIN_IP);
        }

        public FieldCondition defaultPasswordStatus() {
            return createFieldCondition(FIELDS.DEFAULT_PASSWORD_STATUS);
        }
    }
}
